<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>宏任务-微任务</title>
</head>
<body>
    <script>

        // 宏任务： 定时器 setTimeout setInterval  ajax  DOM 事件
        // 微任务： promise  async await
        // 宏任务和微任务都是异步的。微任务先执行，宏任务后执行
        // 同步任务：

        // 1. 先执行所有的微任务， 在执行一个宏任务=>宏任务执行后，执行下一个轮询的同步，清空微任务队列，在执行一个宏任务
 

        console.log('1111');
        setTimeout(()=>{
            console.log(2222);
        });
        Promise.resolve(200).then(value=>{
            console.log(3333);
        });
        Promise.resolve(200).then(value=>{
            console.log(4444);
        });
        Promise.resolve(200).then(value=>{
            console.log(5555);
        });
        console.log(999);

        // 同步：     1111   999
        // 微任务     3333   4444   5555
        // 宏任务     2222


        // 都是异步的，宏任务和微任务到底有什么区别？
    </script>
</body>
</html>